package com.yance.fim.core.enums;

import io.netty.util.internal.StringUtil;

/**
 * 主命令指令枚举类
 *
 * @author yance
 */

public enum Command {
    //默认:无任何操作
    NONE,
    //WebSocket连接命令
    CONNECT,
    //WebSocket断开连接命令
    DISCONNECT,
    //发送消息
    SEND,
    //连接成功，ACK
    CONNECT_ACK;

    /**
     * 根据序号转换类型
     *
     * @param ordinal
     * @return
     */
    public static Command toEnum(int ordinal) {
        byte o = (byte) ordinal;
        if (o > NONE.ordinal() &&
                o < Command.values().length) {
            for (Command command : Command.values()) {
                if (command.ordinal() == o) {
                    return command;
                }
            }
        }
        return NONE;
    }

    /**
     * 根据字符转换类型
     *
     * @param cmd
     * @return
     */
    public static Command toEnum(String cmd) {
        if (!StringUtil.isNullOrEmpty(cmd)) {
            for (Command command : Command.values()) {
                if (command.name().equals(cmd)) {
                    return command;
                }
            }
        }
        return NONE;
    }
}
